// ============================== 导出行操作 ============================== //

export default {
  // —————————————————————————————— 公共覆盖 —————————————————————————————— //

  label: { type: String, default: '操作' }, // 显示标题
  bind: { type: String, default: 'status' }, // 绑定键名，根据状态显示按钮
  width: { type: [Number, String], default: '' }, // 宽度

  // —————————————————————————————— 私有属性 —————————————————————————————— //

  // 固定按钮传列表 ['show']
  // 根据状态可变传对象 { state1: ['pass'], state2: ['rej'] }
  // 或由自定义方法计算得到上述两种结果 (row) => ['show'] 或 (row) => {}
  btns: { type: [Array, Object, Function], default: () => ['show', 'edit', 'del'] }, // 按钮列表 / 按钮映射

  newOne: { type: Boolean, default: false }, // 是否需要新单项的查看或修改
  to: { type: String, default: 'user/:id' }, // 路由的路径 (以 row.id 替换 :id)

  // 以 /common 或 http 开头则使用图片 (优先级最高) (组件中会将 /common 替换为 process.env.VUE_APP_COMMON)
  // 以 el-icon-* 或 iconfont 开头则使用图标 (优先级其次)
  // 以文字配置则使用文字按钮 (优先级最低)
  route: { type: String, default: '' }, // 路由按钮 (为 '' 则取 state.MAP.ROUTE)
  show: { type: String, default: '' }, // 查看按钮 (为 '' 则取 state.MAP.SHOW)
  edit: { type: String, default: '' }, // 修改按钮 (为 '' 则取 state.MAP.EDIT)
  del: { type: String, default: '' }, // 删除按钮 (为 '' 则取 state.MAP.DEL)
  pass: { type: String, default: '' }, // 通过按钮 (为 '' 则取 state.MAP.PASS)
  rej: { type: String, default: '' }, // 拒绝按钮 (为 '' 则取 state.MAP.REJ)
  passed: { type: String, default: '' }, // 已通过按钮 (为 '' 则取 state.MAP.PASSED)
  rejed: { type: String, default: '' }, // 已拒绝按钮 (为 '' 则取 state.MAP.REJED)

  // 可传 :onXxx(row) 来覆盖默认事件，不传则调用 openXxx() 或 openNewOneXxx()
  onRoute: { type: Function, default: null }, // 路由事件 (优先级最高)
  onShow: { type: Function, default: null }, // 查看事件 (优先级最高)
  onEdit: { type: Function, default: null }, // 修改事件 (优先级最高)
  onDel: { type: Function, default: null }, // 删除事件 (优先级最高)
  onPass: { type: Function, default: null }, // 通过事件 (优先级最高)
  onRej: { type: Function, default: null }, // 拒绝事件 (优先级最高)
}
